Field of the Invention
The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to a method, system and computer-usable medium for managing resource capacity for the provision of cloud-based services.
Description of the Related Art
Generally speaking, cloud computing is a model of service delivery for enabling on-demand network access to a shared pool of physical and virtual computing resources that can be dynamically provisioned and released with minimal management effort or interaction with the provider of a service. As such, cloud computing allows a service consumer to access shared resources, such as networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services as a service on an as-needed basis. These services may be provided in a variety of forms, including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), Data as a Service (DaaS), and so forth. In recent years, it has become common to provide access to these various services by publishing an associated web application program interface (API). The publishing of such APIs has resulted in the evolution of an “API economy,” which facilitates the exchange of business functions, capabilities and competencies.
The sharing of pooled resources additionally allows cloud computing to achieve economies of scale, whether the cloud environment is public, private or hybrid. For example, a public cloud may elastically provide a variety of services to various organizations or users for free or on a pay-per-usage model. Conversely, a private cloud is a cloud infrastructure operated solely for a single organization, whether it is hosted and managed by the organization itself, a third-party, or a combination thereof. A hybrid cloud is a composite of two or more clouds, private or public, that remain distinct entities yet offer the benefits of multiple deployment models and services. As an example, an organization may have deployed various computing resources in a private cloud environment, which provide a limited amount of processing capability and data storage capacity. To continue the example, the organization may sometimes require computing resources, or services, beyond those available in its private cloud. When it does, needed computing resources, services, or both, can be provided by one or more public clouds.
However, ensuring the availability of various shared resources in a cloud environment can prove challenging. Large public cloud providers typically address this issue through the implementation of large-scale analytics and prediction models to predetermine which resources may be needed, and to what degree, by each service at a given time. Such approaches are not always practical, or cost effective, for organizations that have implemented a private cloud as the resource capacity needed for common services are typically a function of each application's usage. More particularly, shared resources are generally not committed to a specific service instance, or even a specific service type, in a private cloud environment. As a result, anticipating the capacity requirements for individual services can often be problematic.